﻿$(document).ready(function () {
    //Prepare jtable plugin
    $('#tbl-materias').jtable({
        selecting: true,
        EditDisabled: true,
        actions: {
            listAction: "/AEscolar/_Load_MateriasDef",
            deleteAction: '/AEscolar/_Delete_MateriaDef',
            updateAction: '',
            createAction: '/AEscolar/_New_MateriaDef'
        },
        fields: {
            IDMateria: {
                key: true,
                list: false,
                edit: false,
                type: 'hideEditOrCreate'
            },
            No: {
                title: 'No.',
                edit: false,
                center: true,
                width: '40px',
                type: 'hideEditOrCreate'
            },
            Materia: {
                title: 'Materia',
                titleForm: 'Escriba el nombre de la materia:',
                edit: false
            }
        },
        messages: {
            EditDisabledMessage: 'Lo sentimos, pero la operación de edición ha sido deshabilitada. Si desea editar un elemento de este tipo póngase en contacto con el administrador del sistema.',
            serverCommunicationError: 'Ocurrio un error al intentar comunicarse con el servidor.',
            loadingMessage: 'Cargando los registros...',
            noDataAvailable: '¡No se encontro ninguna materia para este grupo de grados!',
            addNewRecord: '+ Agregar nueva materia',
            editRecord: 'Editar Materia',
            areYouSure: '¿Esta seguro de la operación?',
            deleteConfirmation: '¿Esta seguro que desea eliminar el registro?',
            save: 'Guardar',
            saving: 'Guardando',
            cancel: 'Cancelar',
            deleteText: 'Eliminar',
            deleting: 'Eliminando',
            error: 'Error',
            close: 'Cerrar',
            cannotLoadOptionsFor: 'No se pudo cargar las opciones del campo {0}',
            pagingInfo: 'Mostrando {0} de {1} de {2} registros',
            canNotDeletedRecords: 'No se puede eliminar {0} de {1} registros',
            deleteProggress: 'Eliminando {0} de {1} registros, Por favor espere...'
        },
        formCreated: function (event, data) {
            data.form.find('input[name="Materia"]').attr("data-id-validate", "data-id-value");
            //Campo de Materia
            data.form.find('input[name="Materia"]').addClass('validate[required, funcCall[SelectedItemAutoComplete]] datepicker');
            data.form.find('input[name="Materia"]').css("width", "200px");
            data.form.find('input[name="Materia"]').autocomplete({
                minLength: 1,
                delay: 200,
                selectFirst: true,
                source: function (request, response) {
                    var id = $("#materias").attr("data-id-group");
                    $.ajax({
                        url: '/AEscolar/_AutoCompleteMaterias',
                        type: 'POST',
                        data: {
                            idgroup: id,
                            maxRows: 5,
                            text: request.term
                        },
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    label: item.DESC_FUNCION,
                                    value: item.DESC_FUNCION,
                                    id: item.ID_MATERIAS
                                }
                            }));
                        }
                    });
                },
                select: function (event, ui) {
                    if (ui.item) data.form.find('input[name="Materia"]').attr("data-id-value", ui.item.id);
                    else data.form.find('input[name="Materia"]').attr("data-id-value", "");
                },
                change: function (event, ui) {
                    if (!ui.item) {
                        $(this).val("");
                        data.form.find('input[name="Materia"]').attr("data-id-value", "");
                        data.form.find('input[name="Materia"]').term = "";
                        return false;
                    }
                    else
                        data.form.find('input[name="Materia"]').attr("data-id-value", ui.item.id);
                }
            });
            data.form.validationEngine();
        },
        formSubmitting: function (event, data) {
            //Debemos generara un delay para q el Attr de validacion se refresque
            var valido = data.form.validationEngine('validate');
            if (valido) {
                data.form.find('input[name="No"]').val($("#materias").attr("data-id-group"));
                data.form.find('input[name="IDMateria"]').val(data.form.find('input[name="Materia"]').attr("data-id-value"));
            }
            return valido;
        },
        formClosed: function (event, data) {
            data.form.validationEngine('hide');
            data.form.validationEngine('detach');
        },
        recordAdded: function (event, data) {
            $('#tbl-grados').jtable('reload');
        }
    });

    //Load person list from server
    //$('#tbl-grados').jtable('load');
});

(function ($) {

    $(".ui-autocomplete-input").live("autocompleteopen", function () {
        var autocomplete = $(this).data("autocomplete"),
        menu = autocomplete.menu;

        if (!autocomplete.options.selectFirst) {
            return;
        }

        menu.activate($.Event({ type: "mouseenter" }), menu.element.children().first());
    });

} (jQuery));
